package edu.sias.hyzn.mapper;

import java.util.List;
import edu.sias.hyzn.domain.Patient;
import edu.sias.hyzn.vo.EyeAnalysisResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 患者信息Mapper接口
 * 
 * @author Ailzr
 * @date 2025-03-18
 */
@Mapper
public interface PatientMapper 
{
    /**
     * 查询患者信息
     * 
     * @param id 患者信息主键
     * @return 患者信息
     */
    public Patient selectPatientById(Long id);

    /**
     * 查询患者信息列表
     * 
     * @param patient 患者信息
     * @return 患者信息集合
     */
    public List<EyeAnalysisResult> selectPatientList(@Param("patient") Patient patient,@Param("status") Integer status);

    /**
     * 新增患者信息
     * 
     * @param patient 患者信息
     * @return 结果
     */
    public Long insertPatient(Patient patient);

    /**
     * 修改患者信息
     * 
     * @param patient 患者信息
     * @return 结果
     */
    public int updatePatient(Patient patient);

    /**
     * 删除患者信息
     * 
     * @param id 患者信息主键
     * @return 结果
     */
    public int deletePatientById(Long id);

    /**
     * 批量删除患者信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePatientByIds(Long[] ids);

    EyeAnalysisResult selectVisitById(Long visit_id);

    Patient selectPatientByIdCardNumber(String idCardNumber);

    List<Patient> selectPatientInfoList(Patient patient);
}
